package src.itheima02;

import java.util.HashSet;

/*
    java.util.HashSet<E>集合
        底层数据结构: 哈希表
        哈希表: 数组 + 链表/红黑树(节点>8)
        特点: 查询速度嗷嗷快

    存储原理:
        1.计算元素哈希值
        2.不存在: 直接存储
        3.存在:
            调用equals方法,判断内容是否相同
                true: 不存储
                false: 存储

    要求:
        HashSet/LinkedHashSet存储的元素所属的类要覆盖重写hashCode方法和equals方法

 */
public class Demo04HashSet {
    public static void main(String[] args) {
        System.out.println("abc".hashCode());
        System.out.println("重地".hashCode());
        System.out.println("通话".hashCode());
        System.out.println("abc".hashCode());
        HashSet<String> set = new HashSet<>();
        set.add("abc");//96354
        set.add("重地");//1179395
        set.add("通话");//1179395
        set.add("abc");//96354
        System.out.println(set);
    }
}
